package com.runvp.service.biz.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.runvp.common.annotation.Excel;
import com.runvp.common.core.domain.BaseEntity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 订单对象 biz_order
 *
 * @author runvp
 * @date 2022-12-27
 */
@ToString
@Getter
@Setter
public class BizOrder extends BaseEntity {

    private static final long serialVersionUID = -6350308901456936670L;
    /** ID */
    private Long id;

    /** 租户标识 */
    @Excel(name = "租户标识")
    private Long tenantId;

    /** 订单号 */
    @Excel(name = "订单号")
    private String orderNo;

    /** 订单类型 */
    @Excel(name = "订单类型")
    private String type;

    /** 客户ID */
    @Excel(name = "客户ID")
    private Long customerId;

    /** 客户账号 */
    @Excel(name = "客户账号")
    private String customerAccount;

    /** 客户手机号 */
    @Excel(name = "客户手机号")
    private String customerPhone;

    /** 设备ID */
    @Excel(name = "设备ID")
    private Long deviceId;

    /** 设备类型 */
    @Excel(name = "设备类型")
    private String deviceType;

    /** 设备编号 */
    @Excel(name = "设备编号")
    private String deviceSn;

    /** 设备折扣(%) */
    @Excel(name = "设备折扣(%)")
    private BigDecimal deviceDiscount;

    /** 场地ID */
    @Excel(name = "场地ID")
    private Long siteId;

    /** 场地名称 */
    @Excel(name = "场地名称")
    private String siteName;

    /** 场地位置 */
    @Excel(name = "场地位置")
    private String sitePosition;

    /** 购买完成时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "购买完成时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date successTime;

    /** 优惠券ID */
    @Excel(name = "优惠券ID")
    private Long couponId;

    /** 优惠券标题 */
    @Excel(name = "优惠券标题")
    private String couponTitle;

    /** 优惠金额 */
    @Excel(name = "优惠金额")
    private BigDecimal couponAmount;

    /** 支付交易号 */
    @Excel(name = "支付交易号")
    private String tranNo;

    /** 支付类型 */
    @Excel(name = "支付类型")
    private String payType;

    /** 支付金额 */
    @Excel(name = "支付金额")
    private BigDecimal payAmount;

    /** 支付时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "支付时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date payTime;

    /** 订单金额 */
    @Excel(name = "订单金额")
    private BigDecimal amount;

    /** 商品数 */
    @Excel(name = "商品数")
    private Integer num;

    /** 是否已分成 */
    @Excel(name = "是否已分成")
    private String shareStatus;

    /** 订单支付状态 (wait:待支付,in:支付中,fail:支付失败,success:支付成功) */
    @Excel(name = "订单支付状态 (wait:待支付,in:支付中,fail:支付失败,success:支付成功)")
    private String payStatus;

    /** 订单状态 */
    @Excel(name = "订单状态")
    private String status;

    /** 是否启用 */
    @Excel(name = "是否启用")
    private String enable;

    /** 来源 */
    @Excel(name = "来源")
    private String source;


    /** 充电口ID */
    @Excel(name = "充电口ID")
    private Long cargoId;

    /** 充电口 */
    @Excel(name = "充电口")
    private Integer port;


    /** 设备上报充电结束(1:计时结束，2：拔电源 3：远程停止 4：充满停止 5：超功率 6：短路) */
    @Excel(name = "设备上报充电结束(1:计时结束，2：拔电源 3：远程停止 4：充满停止 5：超功率 6：短路)")
    private Integer re;

    /** 订单下发需要充电的总金额 */
    @Excel(name = "订单下发需要充电的总金额")
    private BigDecimal oa;

    /** 总充电时长分钟数 */
    @Excel(name = "总充电时长分钟数")
    private Integer dur;

    /** 订单耗电量(KWH) */
    @Excel(name = "订单耗电量(KWH)")
    private BigDecimal qty;

    /** 开始充电时间 */
    @Excel(name = "开始充电时间")
    private String srt;

    /** 结束充电时间 */
    @Excel(name = "结束充电时间")
    private String ent;

    /** 订单剩余充电金额 */
    @Excel(name = "订单剩余充电金额")
    private BigDecimal fee;

}
